<?php 
use com\soka as soka;
class Usuario_Ctl extends soka\SokaController
{
	private $_rol, $_user, $_empl, $_proy;
	
 	public function _init()
 	{
 		$this->_user = $this->setModel('usuario');
 		$this->_rol =  $this->setModel('rol');
 		$this->_empl = $this->setModel('trabajador');
 		$this->_proy = $this->setModel('proyecto');
 	}
 	public function getEmpleado()
 	{
 		$this->view(false);
 		$termino = isset($_GET['term']) ? $_GET['term'] : null;
		echo json_encode($this->_empl->get($termino));
	}

	private function listProyecto($id) {
 		$this->_user->id($id)->getById();
 		return $this->_proy->showlist('nombre', $this->_user->proyecto_id());
 	}
 	private function listTra($id) {
 		$this->_user->id($id)->getById();
 		return $this->_empl->showlist('nombre', $this->_user->trabajador_id());
 	}

 	private function listRol($id){
 		$this->_user->id($id)->getById();
 		return $this->_rol->showlist('nombre', $this->_user->rol_id());
 	}
 	public function index($id = null)
 	{	
		(isset($_POST['submit']) && ($_POST['id'] == 0)) ? self::_add() : false;
 		$this->list_rol =  self::listRol($id);
 		$this->list_tra =  self::listTra($id);
 		$this->list_proyecto =  self::listProyecto($id);
		$this->con = $this->_user->id((int)$id)->getById();	
		isset($_POST['id']) ? self::_update() : false;	
		$this->datos = isset($_POST['btn_buscar']) ? $this->_user->getAll(null, null, array('username'=> $_POST['txt_buscar'])): $this->_user->getAll();
		$this->datos = $this->_user->getAll();

		if(isset($_POST['btn_buscar'])){
			$this->datos=$this->_user->get('   WHERE u.username LIKE "%'.$_POST['txt_buscar'].'%"');
		}else{
			$this->datos=$this->_user->get('');
		}
 	}
 	private function _add()
 	{				
 		extract($_POST);
		if($id == 0 && $this->_user->username($username)->password($pass)
						->rol_id($list_rol)->estado(1)->trabajador_id($trabajador_id)->email($email)->proyecto_id($list_proyecto)->add()){
			$msg['error'] = 'El registro fue guardado correctamente.';}
		else {
			$msg['error']  = 'Ha ocurrido un error!'.$trabajador_id;
			$msg['causas'][]  = 'Usuario existente!';
		}
		$this->messagge=$msg;
	}

 	private function _update() {				
 		extract($_POST);
		if($id > 0 && $this->_user->id($id)->password($pass)
						->rol_id($list_rol)->trabajador_id($trab_id)->email($email)->add())
			$h['error'] = 'El registro fue actualizado correctamente.';
				$this->messagge2= $h;
 	}
 	

 	public function delete()
	{
		$this->view(false);
		if (isset($_POST['id_delete'])) {
			$this->_user->id((int) $_POST['id_delete']);
			if($this->_user->getById() && $this->_user->estado() == 1) {
				if($this->_user->del(false))
					$data['messagge'] = 'El registro fue desactivado correctamente.';
							$msg['causas'][]  = 'i';
			} else {
				if($this->_user->del(true))
					$data['messagge'] = 'El registro fue activado correctamente.';
							$msg['causas'][]  = 'i';
			}
		}
		echo json_encode($data);
	}

 }